<?php
/*
  [EWEISHOP] Copyright(C) 2017 Elinkint Inc.
  This is NOT a freeware, use is subject to license terms
   
  OfficialAccountData.php 2018-05-25 15:19 likexin
   
*/

namespace common\library\wechat\officialaccount;

use common\library\wechat\WechatApi;
use common\component\wechat\Wechat;

class OfficialAccountData extends WechatApi
{

    /**
     * 获取用户增减数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度7天, 不可查今天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取累计用户数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度7天, 不可查今天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userCumulate(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userCumulate($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文群发每日数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function articleSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->articleSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文群发总数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function articleTotal(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->articleTotal($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文统计数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度3天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userReadSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userReadSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文统计分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userReadHourly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userReadHourly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文分享转发数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度7天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userShareSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userShareSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取图文分享转发分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function userShareHourly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->userShareHourly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送概况数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度7天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageHourly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageHourly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送周数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度30天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageWeekly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageWeekly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送月数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度30天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageMonthly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageMonthly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送分布数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度15天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageDistSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageDistSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送分布周数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度30天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageDistWeekly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageDistWeekly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取消息发送分布月数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度30天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function upstreamMessageDistMonthly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->upstreamMessageDistMonthly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取接口分析数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度30天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function interfaceSummary(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->interfaceSummary($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取接口分析分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function interfaceSummaryHourly(string $from_date, string $to_date)
    {
        $result = self::getInstance()->data_cube->interfaceSummaryHourly($from_date, $to_date);
        return Wechat::apiError($result);
    }

    /**
     * 获取普通卡券分析分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @param integer $condSource
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function cardSummary(string $from_date, string $to_date, int $condSource = 0)
    {
        $result = self::getInstance()->data_cube->cardSummary($from_date, $to_date, $condSource);
        return Wechat::apiError($result);
    }

    /**
     * 获取免费券分析分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @param integer $condSource
     * @param integer $cardId
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function freeCardSummary(string $from_date, string $to_date, int $condSource = 0, string $cardId = '')
    {
        $result = self::getInstance()->data_cube->freeCardSummary($from_date, $to_date, $condSource, $cardId);
        return Wechat::apiError($result);
    }

    /**
     * 获取会员卡分析分时数据
     * @param string $from_date 获取数据的起始日期
     * @param string $to_date 获取数据的结束日期
     * @param integer $condSource
     * @others 最大时间跨度1天
     * @return mixed
     * @link https://www.easywechat.com/docs/master/zh-CN/official-account/data_cube
     */
    public static function memberCardSummary(string $from_date, string $to_date, int $condSource = 0)
    {
        $result = self::getInstance()->data_cube->memberCardSummary($from_date, $to_date, $condSource);
        return Wechat::apiError($result);
    }

}